package com.zhoust.ratelimiter.annotation;

import java.lang.annotation.*;

/**
 * @author 15703
 * @version 1.0
 * @Title
 * @package com.zhoust.ratelimiter.annotation
 * @date 2021/4/21 20:24
 * @desc
 * @Target 指定在什么级别上生效， ElementType.METHOD方法级别。
 * @Retention
 * 按生命周期来划分可分为3类：
 * 1、RetentionPolicy.SOURCE：注解只保留在源文件，当Java文件编译成class文件的时候，注解被遗弃；
 * 2、RetentionPolicy.CLASS：注解被保留到class文件，但jvm加载class文件时候被遗弃，这是默认的生命周期；
 * 3、RetentionPolicy.RUNTIME：注解不仅被保存到class文件中，jvm加载class文件之后，仍然存在；
 *
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisLuaLimiter {

    int limiter();

    String methodKey() default "";

}
